//============================================================================
// Name        : Servidor-Cliente.cpp
// Author      : Fernando Broqua
// Version     :
// Copyright   :
// Description : Inicio del Programa Cliente
//============================================================================

#include "Cliente.h"


Cliente * cli;
void signalHandler(int signal);

// Inicio del Programa
int main(int argc, char **argv) {
	cli = new Cliente();
	/* Pide al Jugador la carga de sus datos */
	if (cli->configuracionesJugador()) {
		// Entrega a Cliente el control de las señales.
		signal(SENIAL_FIN_DAEMON, signalHandler);
		signal(SENIAL_FIN_TORNEO, signalHandler);
		signal(SENIAL_FIN_PARTIDA, signalHandler);
		cli->ejecutar();
	}
	return 0;
}

/* Handler que toma las señal de finalización y la trasmite al thread. */
void signalHandler(int signal) {
	switch (signal) {
	case SENIAL_FIN_TORNEO:
	case SENIAL_FIN_DAEMON:
		//TODO: Que hacer cuando fuerzan el cierre del Cliente.
		cli->liberarRecursos();
		break;

	case SENIAL_FIN_PARTIDA:
		//TODO: Que hacer cuando el Cliente termina la partida presionando ESC.
		cli->liberarRecursosPartida();
		break;
	}
}
